跳到主要内容

Vue 2:Vue.filter

过滤器用于模板中的文本格式化。Vue 3 已移除过滤器,改用普通函数或 computed。

注册与使用​

import Vue from 'vue';

Vue.filter('dateFormat', (value, pattern = 'yyyy-mm-dd') => {
const date = new Date(value);
const pad = number => String(number).padStart(2, '0');
const day = `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
if (pattern === 'yyyy-mm-dd') return day;
return `${day} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
});
Vue.filter('decorate', value => `==${value}==`);
const format = Vue.filter('dateFormat'); // 读取过滤器。
<p>{{ time | dateFormat('yyyy-mm-dd') | decorate }}</p>
<div :title="time | dateFormat"></div>

过滤器接收前一个表达式的结果作为第一个参数,其余参数按模板传入。局部过滤器声明在组件的 filters 选项中。

Vue 3 示例:{{ formatDate(time) }}。格式化函数需自行处理无效日期与时区需求。